home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / isc / msgcat.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-09-17  |  3.2 KB  |  132 lines

  1. /*
  2.  * Copyright (C) 2004, 2005  Internet Systems Consortium, Inc. ("ISC")
  3.  * Copyright (C) 1999-2001  Internet Software Consortium.
  4.  *
  5.  * Permission to use, copy, modify, and distribute this software for any
  6.  * purpose with or without fee is hereby granted, provided that the above
  7.  * copyright notice and this permission notice appear in all copies.
  8.  *
  9.  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
  10.  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  11.  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
  12.  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  13.  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  14.  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  15.  * PERFORMANCE OF THIS SOFTWARE.
  16.  */
  17.  
  18. /* $Id: msgcat.h,v 1.9.18.2 2005/04/29 00:16:59 marka Exp $ */
  19.  
  20. #ifndef ISC_MSGCAT_H
  21. #define ISC_MSGCAT_H 1
  22.  
  23. /*****
  24.  ***** Module Info
  25.  *****/
  26.  
  27. /*! \file isc/msgcat.h
  28.  * \brief The ISC Message Catalog
  29.  * aids internationalization of applications by allowing
  30.  * messages to be retrieved from locale-specific files instead of
  31.  * hardwiring them into the application.  This allows translations of
  32.  * messages appropriate to the locale to be supplied without recompiling
  33.  * the application.
  34.  *
  35.  * Notes:
  36.  *\li    It's very important that message catalogs work, even if only the
  37.  *    default_text can be used.
  38.  *
  39.  * MP:
  40.  *\li    The caller must ensure appropriate synchronization of
  41.  *    isc_msgcat_open() and isc_msgcat_close().  isc_msgcat_get()
  42.  *    ensures appropriate synchronization.
  43.  *
  44.  * Reliability:
  45.  *\li    No anticipated impact.
  46.  *
  47.  * Resources:
  48.  *\li    TBS
  49.  *
  50.  * \li Security:
  51.  *    No anticipated impact.
  52.  *
  53.  * \li Standards:
  54.  *    None.
  55.  */
  56.  
  57. /*****
  58.  ***** Imports
  59.  *****/
  60.  
  61. #include <isc/lang.h>
  62. #include <isc/types.h>
  63.  
  64. ISC_LANG_BEGINDECLS
  65.  
  66. /*****
  67.  ***** Methods
  68.  *****/
  69.  
  70. void
  71. isc_msgcat_open(const char *name, isc_msgcat_t **msgcatp);
  72. /*%<
  73.  * Open a message catalog.
  74.  *
  75.  * Notes:
  76.  *
  77.  *\li    If memory cannot be allocated or other failures occur, *msgcatp
  78.  *    will be set to NULL.  If a NULL msgcat is given to isc_msgcat_get(),
  79.  *    the default_text will be returned, ensuring that some message text
  80.  *    will be available, no matter what's going wrong.
  81.  *
  82.  * Requires:
  83.  *
  84.  *\li    'name' is a valid string.
  85.  *
  86.  *\li    msgcatp != NULL && *msgcatp == NULL
  87.  */
  88.  
  89. void
  90. isc_msgcat_close(isc_msgcat_t **msgcatp);
  91. /*%<
  92.  * Close a message catalog.
  93.  *
  94.  * Notes:
  95.  *
  96.  *\li    Any string pointers returned by prior calls to isc_msgcat_get() are
  97.  *    invalid after isc_msgcat_close() has been called and must not be
  98.  *    used.
  99.  *
  100.  * Requires:
  101.  *
  102.  *\li    *msgcatp is a valid message catalog or is NULL.
  103.  *
  104.  * Ensures:
  105.  *
  106.  *\li    All resources associated with the message catalog are released.
  107.  *
  108.  *\li    *msgcatp == NULL
  109.  */
  110.  
  111. const char *
  112. isc_msgcat_get(isc_msgcat_t *msgcat, int set, int message,
  113.            const char *default_text);
  114. /*%<
  115.  * Get message 'message' from message set 'set' in 'msgcat'.  If it
  116.  * is not available, use 'default_text'.
  117.  *
  118.  * Requires:
  119.  *
  120.  *\li    'msgcat' is a valid message catalog or is NULL.
  121.  *
  122.  *\li    set > 0
  123.  *
  124.  *\li    message > 0
  125.  *
  126.  *\li    'default_text' is a valid string.
  127.  */
  128.  
  129. ISC_LANG_ENDDECLS
  130.  
  131. #endif /* ISC_MSGCAT_H */
  132.